package com.weixing.mall.provider.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.weixing.mall.provider.model.domain.ProjectInfo;
import com.weixing.mall.provider.model.dto.pdm.ProjectInfoDesignDto;
import com.weixing.mall.provider.model.dto.pdm.ProjectInfoDto;
import com.weixing.mall.provider.model.dto.pdm.ProjectInfoProductionDto;
import com.weixing.mall.provider.model.dto.pdm.ProjectInfoPurchaseDto;
import com.weixing.mall.provider.model.query.ProductDevelopQuery;
import com.weixing.mall.provider.model.vo.ProjectInfoVo;
import com.weixing.mall.provider.model.vo.pdm.ProjectInfoDesignVo;
import com.weixing.mall.provider.model.vo.pdm.ProjectInfoProductionVo;
import com.weixing.mall.provider.model.vo.pdm.ProjectInfoPurchaseVo;

/**
 * <p>
 * 产品研发产品信息表 服务类
 * </p>
 *
 * @author Small
 * @since 2019-11-18
 */
public interface IProjectInfoService extends IService<ProjectInfo> {

    IPage<ProjectInfoVo> selectListOfPage(Page page, ProductDevelopQuery productDevelopQuery);

    void save(ProjectInfoDto projectInfoDto, Long uid);

    IPage<ProjectInfoDesignVo> selectDesignList(Page page, ProductDevelopQuery productDevelopQuery);

    void saveDesign(ProjectInfoDesignDto projectInfoDesignDto, Long uid);

    IPage<ProjectInfoPurchaseVo> selectPurchaseList(Page page, ProductDevelopQuery productDevelopQuery);

    void savePurchase(ProjectInfoPurchaseDto projectInfoPurchaseDto, Long uid);

    IPage<ProjectInfoProductionVo> selectProductionList(Page page, ProductDevelopQuery productDevelopQuery);

    void saveProduction(ProjectInfoProductionDto projectInfoProductionDto, Long uid);

    void delDesign(Long uid, Long id, Long projectId);
}
